home *** CD-ROM | disk | FTP | other *** search
/ ftp.anonawest.com / ftp.anonawest.com.tar / ftp.anonawest.com / Memorial Day+TAPS_files / ycs_hlpmenu_v1.js < prev    next >
Text File  |  2013-02-25  |  6KB  |  157 lines

  1. <!--  
  2. /*
  3. #   $Source: /CVSROOT/yahoo/my/yplus/lib/my/sbc/ysbc_menu.js,v $
  4. #   $Date: 01/05/2004
  5. #   $Author: ava hristova $
  6. */
  7. var ymy_isSec = 0;
  8. var xAdjust = 12;
  9. var yAdjust = 5;
  10.  
  11. function SlideList(id, width) {
  12.     this.name = id;
  13.     this.base = ylib_List;
  14.     this.base(id,width);
  15.     this.imgPath="http://us.i1.yimg.com/us.yimg.com/i/";
  16.     if (document.URL.indexOf("https",0)!=-1) { this.imgPath="https://sec.yimg.com/i/";ymy_isSec=1; }
  17.     this.css = "<style>\n";
  18.     this.itemH = 22;
  19.     this.cont = null; this.holder = null; this.shadow = null; this.loc = null;
  20.     this.locX=this.locY=this.isOpen=this.isDone=0;
  21.     this.hideEl = null;
  22.     
  23.     this.init2    = slInit2;
  24.     this.add      = slAdd;
  25.     this.build    = slBuild;
  26.     this.over     = slOver;
  27.     this.show     = slShow;
  28.     this.locate   = slLocate;
  29.     this.sShadow  = slsShadow;
  30.     this.hShadow  = slhShadow;
  31.     this.onSelect = slOnSelect;
  32.     this.hideList = slHideList;
  33. }
  34. SlideList.prototype = new ylib_List;
  35.  
  36. function slInit2() {
  37.     this.cont = ylib_getObj(this.id+'cont');
  38.     this.holder = ylib_getObj(this.id+'holder');
  39.     this.shadow = ylib_getObj(this.id+'shadow');
  40.     this.loc = ylib_getObj('b_'+this.name+'Img');
  41.     if (oBw.ie4up) { this.shadow.style.filter = 'Alpha(opacity = 30)'; }
  42.     if (oBw.ns6) this.shadow.style.MozOpacity = '16%';
  43.     pgLoaded=1;
  44. }
  45. // label, url, image src
  46. function slAdd(items) {
  47.     if (items==null) return;
  48.     var l = items.length;
  49.     for (var i=0; i<l; i++) {
  50.         this.items[i] = new Array();
  51.         this.items[i].selected = 0;
  52.         this.items[i].hasChild = 0;
  53.         this.items[i].text = items[i][0];
  54.         this.items[i].value = items[i][1];
  55.         this.items[i].lnk = '<a href="'+items[i][1]+'" class="glmenucss" target="_parent">';
  56.         this.items[i].y = this.h;
  57.         this.h += this.itemH;
  58.     } 
  59. }
  60.  
  61. function slBuild() {
  62.     var cssArr = new Array();
  63.     var divArr = new Array();
  64.     var l = this.items.length;
  65.     var hasClip = (oBw.ns)? ' left:1px; clip:rect(0 '+this.w+' '+this.itemH+' 0); layer-background-color:'+this.color.offBg+'':''
  66.     var nspad = (oBw.ns)? 1:0;
  67.     var i_shW = (oBw.ie)? 2:12;
  68.     this.css += 'a.glmenucss { font-family:verdana; font-size: .85em; text-decoration: none; } a.glmenucss:hover { text-decoration: underline; } \n #'+this.id+'shadow { position:absolute; left:-500px; top:-'+(this.itemH*l+2)+'px; width:'+(this.w+i_shW)+'px; height:'+(this.itemH*l+2)+'px; background-image:url('+this.imgPath+'my/plus/sbc/dsl_dots2.gif); background-repeat:repeat; display:none; z-index:2; visibility:hidden; } \n#'+this.id+'cont { position:absolute; visibility:hidden; left:-500px; top:-500px; width:'+(this.w+2)+'px; height:'+(this.itemH*l+2)+'px; clip:rect(0 '+(this.w+25)+' '+(this.itemH*l+20)+' 0); } \n#'+this.id+'holder { position:absolute; left:0px; top:-'+(this.itemH*l+2)+'px; width:'+(this.w+((oBw.ns6)? 10:2))+'px; height:'+(this.itemH*l+((oBw.ns6)? 5:2))+'px; border:1px solid #cccccc; background-color:#ffffff; z-index:100; } \n'
  69.     
  70.     for (var i=0; i<l; i++) {
  71.         if(i==0) { this.css += '#'+this.id+i } else { this.css += ', #'+this.id+i }
  72.         cssArr[i] = '#'+this.id+i+' { top:'+(i*this.itemH+nspad)+'px; } \n'
  73.         divArr[i] = '<div id='+this.id+i+'>'+this.items[i].lnk+this.items[i].text+'</a></div> \n'
  74.     }
  75.     
  76.     this.css += ' { position:absolute; width:'+this.w+'px; height:'+(this.itemH-((oBw.ie&&oBw.mac)? 0:5))+'px; layer-background-color:'+this.color.offBg+'; padding: 3px 5px; left:0px; text-align:left; cursor:pointer; cursor:hand; '+hasClip+' }\n'  
  77.     this.css += cssArr.join('')
  78.     
  79.     this.div += '<div id='+this.id+'cont>\n<div id='+this.id+'shadow> </div>\n<div id='+this.id+'holder>\n'
  80.     this.div += divArr.join('')
  81.     this.div += (oBw.ns)? '<img src="'+this.imgPath+'spacer.gif" width=10 height='+(this.itemH*l-10)+'>\n':'' // needed to create the height for ns
  82.     this.div += '</div>\n</div>\n'
  83. }
  84.  
  85. function slsShadow() {
  86.     if (oBw.op||oBw.ns||oBw.mac) {this.done=1;return;}
  87.     var i_offsetY = (oBw.ie)? 8:12;
  88.     ylib_moveTo(this.shadow,5,i_offsetY - 2);
  89.     ylib_show(this.shadow,'block');
  90.     this.done=1;
  91. }
  92.  
  93. function slhShadow() {
  94.     this.isOpen=0;
  95. }
  96.  
  97. function slOver(idx) {
  98.      if (!this.items[idx].selected) { this.turnOn(ylib_getObj(this.id+idx)); }
  99. }
  100.  
  101. function slShow() {
  102.     var offsetY = (oBw.win)? 12:12; var offsetX = (oBw.ie)? 12:1; 
  103.     this.locate();
  104.     if (!this.isOpen) {    // slide menu down
  105.         this.done=0;
  106.         ylib_show(this.cont);
  107.         ylib_moveTo(this.cont,(this.locX-this.w)+offsetX,this.locY+offsetY);
  108.         ylib_setZ(this.cont,2000);
  109.         ylib_slide(this.holder,0,2,9,this.id+".sShadow()");
  110.         hideSelect(1);
  111.         this.isOpen=1;
  112.     } else { // slide menu up
  113.         if (!this.done) return;
  114.         this.done=0;
  115.         ylib_slide(this.holder,0,-(this.h+10),9,this.id+".hShadow()"); // +10 b/c of ns6
  116.         if (!oBw.ns) { ylib_moveTo(this.shadow,-500,-500);ylib_hide(this.shadow,'none'); }
  117.         setTimeout("ylib_hide("+this.id+".cont)",100);
  118.         hideSelect(0);
  119.     }
  120.     return false;
  121. }
  122.  
  123. function hideSelect(s) {
  124.     if (oBw.ie) {
  125.         var oCol = document.getElementsByTagName('select');
  126.         if (s) { for (i=0; i<oCol.length; i++) { ylib_hide(oCol[i]); } }
  127.         else { for (i=0; i<oCol.length; i++) { ylib_show(oCol[i]); } }
  128.     }
  129. }
  130. function slLocate() { this.locX = ylib_getPageX(this.loc) - xAdjust; this.locY = ylib_getPageY(this.loc) - yAdjust; }
  131. function slOnSelect() { if (!oBw.mac&&oBw.ie) window.location.href = this.lnk; }
  132. function slHideList() { this.show(); }
  133.  
  134. function ylib_slide(e,x,y,sp,funcCall,xNow,yNow){
  135.  var num;
  136.  if(typeof e!='object'){ num=e; e=ylib_slide.all[num]; e.sliding=true; }
  137.  else{if(e.sliding)return}
  138.  eLT = ylib_getX(e); eRT = ylib_getY(e);
  139.  xNow=xNow||parseInt(eLT); yNow=yNow||parseInt(eRT);
  140.  x = (x==null)? eLT:x; y = (y==null)? eRT:y;
  141.  distX=Math.abs(xNow-x); distY=Math.abs(yNow-y);
  142.  if(Math.round(xNow)!=x)xNow+=(distX/(11-sp)*sign(xNow,x));
  143.  if(Math.round(yNow)!=y)yNow+=(distY/(11-sp)*sign(yNow,y));
  144.  ylib_setX(e,px(Math.round(xNow)));
  145.  ylib_setY(e,px(Math.round(yNow)));
  146.  if(num==null){num=ylib_slide.all.length;ylib_slide.all[num]=e;}
  147.   if(Math.round(xNow)!=x||Math.round(yNow)!=y)setTimeout('ylib_slide('+num+','+x+','+y+','+sp+',"'+funcCall+'",'+xNow+','+yNow+')', 30);
  148.  else{
  149.   e.sliding=false;
  150.   if(funcCall!='undefined')eval(funcCall);
  151.  }
  152. };
  153. ylib_slide.all=[];
  154. function sign(x,y){return(x<y)?1:-1};
  155. function px(n){return n+(!oBw.ns&&!oBw.op?'px':0)};
  156. //-->
  157.